import type { ExtractPropTypes } from "vue";
import type { formProps, FormEmits } from "../../components/e-form/props";
import type { useFormLabelWidth } from "../../components/e-form/util";
import type { formItemProps } from "../../components/e-form-item/props";
import type { checkboxGroupProps } from "../../components/e-checkbox-group/props";
import type { checkboxProps } from "../../components/e-checkbox/props";
import type { radioGroupProps } from "../../components/e-radio-group/props";
import type { radioProps } from "../../components/e-radio/props";
import type { selectProps } from "../../components/e-select/props";
import type { optionProps } from "../../components/e-option/props";
import type { collapseProps } from "../../components/e-collapse/props";
import type { dragListProps } from "../../components/e-drag-list/props";
import type { dragListItemProps } from "../../components/e-drag-list-item/props";
import type { dropdownMenuProps } from "../../components/e-dropdown-menu/props";
import type { dropdownMenuItemProps } from "../../components/e-dropdown-menu-item/props";
import type { tabbarProps } from "../../components/e-tabbar/props";
import type { tabbarItemProps } from "../../components/e-tabbar-item/props";
import type { listProps } from "../../components/e-list/props";
import type { skeletonProps } from "../../components/e-skeleton/props";
import type { swipeActionProps } from "../../components/e-swipe-action/props";
import type { swipeActionItemProps } from "../../components/e-swipe-action-item/props";
import type { rowProps } from "../../components/e-row/props";


export type FormProps = ExtractPropTypes<typeof formProps>;
export type FormItemProps = ExtractPropTypes<typeof formItemProps>;
export type FormLabelWidthContext = ReturnType<typeof useFormLabelWidth>;
export type CheckboxGroupProps = ExtractPropTypes<typeof checkboxGroupProps>;
export type CheckboxProps = ExtractPropTypes<typeof checkboxProps>;
export type RadioGroupProps = ExtractPropTypes<typeof radioGroupProps>;
export type RadioProps = ExtractPropTypes<typeof radioProps>;
export type SelectProps = ExtractPropTypes<typeof selectProps>;
export type OptionProps = ExtractPropTypes<typeof optionProps>;
export type CollapseProps = ExtractPropTypes<typeof collapseProps>;
export type DragListProps = ExtractPropTypes<typeof dragListProps>;
export type DragListItemProps = ExtractPropTypes<typeof dragListItemProps>;
export type DropdownMenuProps = ExtractPropTypes<typeof dropdownMenuProps>;
export type DropdownMenuItemProps = ExtractPropTypes<typeof dropdownMenuItemProps>;
export type TabbarProps = ExtractPropTypes<typeof tabbarProps>;
export type TabbarItemProps = ExtractPropTypes<typeof tabbarItemProps>;
export type ListProps = ExtractPropTypes<typeof listProps>;
export type SkeletonProps = ExtractPropTypes<typeof skeletonProps>;
export type SwipeActionProps = ExtractPropTypes<typeof swipeActionProps>;
export type SwipeActionItemProps = ExtractPropTypes<typeof swipeActionItemProps>;
export type RowProps = ExtractPropTypes<typeof rowProps>;


export { FormEmits };
